#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include<QPushButton>
#include<QLineEdit>
#include "messageshowarea.h"
#include "messageeditarea.h"
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWidget;
}
QT_END_NAMESPACE

class MainWidget : public QWidget
{
    Q_OBJECT

private:
    MainWidget(QWidget *parent = nullptr);
    static MainWidget* instance;

public:
    //单例模式限制别人创建
    static MainWidget* getInstance();
    ~MainWidget();

private:
    Ui::MainWidget *ui;

    //窗口最左部分
    QWidget* windowLeft;
    QWidget* windowMid;
    QWidget* windowRight;

    //用户头像
    QPushButton* userAvatar;   //头像用按钮来表示，点击头像，弹出用户信息

    //会话标签页按钮
    QPushButton* sessionTabBtn;
    //好友标签页按钮
    QPushButton* friendTabBtn;
    //好友申请标签页按钮
    QPushButton* applyTabBtn;

    //用户搜索框
    QLineEdit* searchEdit;
    //添加好友按钮
    QPushButton* addFriendBtn;
    //消息展示区
    MessageShowArea* messageShowArea;
    //消息编辑区
    MessageEditArea* messageEditArea;
    //枚举类型
    enum ActiveTab{
        SESSION_LIST,
        FRIEND_LIST,
        APPLY_LIST
    };

    ActiveTab activeTab = SESSION_LIST;

    void initMainWindow();
    void initLeftWindow();
    void initMidWindow();
    void initRightWindow();

    void initSignalSlot();

    void switchTabToSession();
    void switchTabToFriend();
    void switchTabToApply();

    void loadSessionList();
    void loadFriendList();
    void loadApplyList();
};
#endif // MAINWIDGET_H
